package array

/*
给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点 (i, ai) 。
在坐标内画 n 条垂直线，垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。
找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。

看readme图示

*/

// 执行用时 104ms 45.35%
// 内存消耗 8.3mb 64.46%
func MaxArea(height []int) int {
	left := 0
	right := len(height) - 1
	max := 0

	for left != right {
		h := 0
		if height[left] <= height[right] {
			h = height[left]
		} else {
			h = height[right]
		}

		width := right - left

		v := width * h
		if v > max {
			max = v
		}

		if height[left] <= height[right] {
			left++
		} else {
			right--
		}
	}

	return max

}
